ποΈGitΠ―ΡΠ°ποΈ
.specify/templates/plan-template.md 4e48e64e786b58d7c73280f7aa6ebf55be9e53e5 (4e48e64e) Text, 5.29 KB
Implementation Plan: [FEATURE]
Branch: T383838[###-feature-name] | Date: [DATE] | Spec: [link]
Input: Feature specification from T383838/specs/[###-feature-name]/spec.md
Note: This template is filled in by the T383838/speckit.plan command. See T383838.specify/templates/plan-template.md for the execution workflow.
Summary
[Extract from feature spec: primary requirement + technical approach from research]
Technical Context
<!--
ACTION REQUIRED: Replace the content in this section with the technical details
for the project. The structure here is presented in advisory capacity to guide
the iteration process.
-->
Language/Version: [e.g., Python 3.11, Swift 5.9, Rust 1.75 or NEEDS CLARIFICATION]
Primary Dependencies: [e.g., FastAPI, UIKit, LLVM or NEEDS CLARIFICATION]
Storage: [if applicable, e.g., PostgreSQL, CoreData, files or N/A]
Testing: [e.g., pytest, XCTest, cargo test or NEEDS CLARIFICATION]
Target Platform: [e.g., Linux server, iOS 15+, WASM or NEEDS CLARIFICATION]
Project Type: [e.g., library/cli/web-service/mobile-app/compiler/desktop-app or NEEDS CLARIFICATION]
Performance Goals: [domain-specific, e.g., 1000 req/s, 10k lines/sec, 60 fps or NEEDS CLARIFICATION]
Constraints: [domain-specific, e.g., <200ms p95, <100MB memory, offline-capable or NEEDS CLARIFICATION]
Scale/Scope: [domain-specific, e.g., 10k users, 1M LOC, 50 screens or NEEDS CLARIFICATION]
Constitution Check
GATE: Must pass before Phase 0 research. Re-check after Phase 1 design.
β’ I. Kotlin Multiplatform Core: Identify every touched source set/module and confirm
all business logic remains in T383838commonMain; document any platform-specific work that is
isolated to T383838androidMain/platform shells.
β’ II. Zero Lint Tolerance: List the exact formatting and static-analysis commands that
will be run for the touched modules, at minimum T383838spotlessCheck and T383838detekt.
β’ III. Compose Multiplatform UI: If UI is in scope, confirm the design uses Compose
Multiplatform patterns, T383838MeshtasticNavDisplay/T383838NavigationBackHandler where relevant,
and pre-formats floats with T383838NumberFormatter.format().
β’ IV. Privacy First: Confirm the change does not log or expose PII, location data,
cryptographic keys, or hand-edit generated proto (the T383838org.meshtastic:protobufs Maven dependency).
β’ V. Design Standards Compliance: For any user-facing UI, record how the design was
checked against the Meshtastic Client Design Standards. For cross-platform features,
link the upstream behavior spec from T383838meshtastic/design/features/ or justify N/A.
β’ VI. Documentation Freshness: If user-facing UI changes, confirm the corresponding
T383838docs/ page(s) are updated (with T383838last_updated frontmatter) or the T383838skip-docs-check
label is applied with justification.
β’ VII. Verify Before Push: Record the exact local verification commands and the expected
post-push CI check command (T383838gh pr checks or T383838gh run list) before implementation starts.
If any gate cannot be met, the exception MUST be justified in the Complexity Tracking
section below and explicitly called out in the PR description.
Project Structure
Documentation (this feature)
T282828
specs/[###-feature]/
βββ plan.md # This file (/speckit.plan command output)
βββ research.md # Phase 0 output (/speckit.plan command)
βββ data-model.md # Phase 1 output (/speckit.plan command)
βββ quickstart.md # Phase 1 output (/speckit.plan command)
βββ contracts/ # Phase 1 output (/speckit.plan command)
βββ tasks.md # Phase 2 output (/speckit.tasks command - NOT created by /speckit.plan)
Source Code (repository root)
<!--
ACTION REQUIRED: Replace the placeholder tree below with the concrete layout
for this feature. Delete unused options and expand the chosen structure with
real paths (e.g., apps/admin, packages/something). The delivered plan must
not include Option labels.
-->
T282828
src/
βββ models/
βββ services/
βββ cli/
βββ lib/
tests/
βββ contract/
βββ integration/
βββ unit/
backend/
βββ src/
β βββ models/
β βββ services/
β βββ api/
βββ tests/
frontend/
βββ src/
β βββ components/
β βββ pages/
β βββ services/
βββ tests/
api/
βββ [same as backend above]
ios/ or android/
βββ [platform-specific structure: feature modules, UI flows, platform tests]
Structure Decision: [Document the selected structure and reference the real
directories captured above]
Complexity Tracking
β Fill ONLY if Constitution Check has violations that must be justified
ββββββββββββββββββββββββββββββ¬βββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββ
β Violation β Why Needed β Simpler Alternative Rejected Because β
ββββββββββββββββββββββββββββββΌβββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββ€
β [e.g., 4th project] β [current need] β [why 3 projects insufficient] β
β [e.g., Repository pattern] β [specific problem] β [why direct DB access insufficient] β
ββββββββββββββββββββββββββββββ΄βββββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββββββ
Served by rngit 1.5.3 - Generated in 0.05s